package com.zr.vo.dispatch;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.zr.vo.BaseVo;
import com.zr.vo.base.BaseCity;
import com.zr.vo.car.CarInfo;
import com.zr.vo.order.OrderForm;
import com.zr.vo.order.OrderStatus;

import java.util.Date;
import java.util.List;

/**
 * 调度单
 *
 * @author 陈鹏
 */
public class DispatchTicket extends BaseVo {
    /**
     * 主键id
     */

    private Integer id;
    /**
     * 调度单号
     */
    private String ticketId;
    /**
     * 调度单状态
     */
    private String status;
    /**
     * 当前状态更新时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date statusTime;
    /**
     * 预计发车时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date startTime;
    /**
     * 预计到达时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date endTime;
    /**
     * 调度单类型(整车或散货)
     */
    private String type;
    /**
     * 出发城市编号
     */
    private Integer startAreaId;
    /**
     * 到达城市编号
     */
    private Integer endAreaId;
    /**
     * 创建人id
     */
    private String createId;
    /**
     * 创建日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date createTime;
    /**
     * 修改日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date modifyTime;
    /**
     * 修改人id
     */
    private String modifyId;
    /**
     * 是否为删除状态,0为是1为否
     */
    private Integer del;
    /**
     * 实际发车时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date actualStartTime;
    /**
     * 时间到达时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date actualEndTime;
    /**
     * 车牌号
     */
    private String carNumber;
    /**
     * 运送订单列表
     */
    private List<OrderForm> orderFormList;
    /**
     * 出发城市
     */
    private BaseCity startCity;
    /**
     * 到达城市
     */
    private BaseCity endCity;
    /**
     * 调度单路线
     */
    private DispatchRoute dispatchRoute;
    /**
     * 调度单路线列表
     */
    private List<DispatchRoute> dispatchRouteList;
    /**
     * 货车
     */
    private CarInfo carInfo;
    /**
     * 出发城市名称
     */
    private String startAreaName;
    /**
     * 到达城市名称
     */
    private String endAreaName;
    /**
     * 当前节点城市
     */
    private BaseCity currentNodeCity;
    /**
     * 当前节点时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date currentNodeTime;
    /**
     * 完成订单列表
     */
    private List<OrderForm> finishedOrderFormList;
    /**
     * 异常列表
     */
    private List<DispatchAbnormalRecord> dispatchAbnormalRecordList;
    /**
     * 调度单状态列表
     */
    public List<OrderStatus> orderStatusList;

    public BaseCity getStartCity() {
        return startCity;
    }

    public void setStartCity(BaseCity startCity) {
        this.startCity = startCity;
    }

    public BaseCity getEndCity() {
        return endCity;
    }

    public void setEndCity(BaseCity endCity) {
        this.endCity = endCity;
    }

    public DispatchRoute getDispatchRoute() {
        return dispatchRoute;
    }

    public void setDispatchRoute(DispatchRoute dispatchRoute) {
        this.dispatchRoute = dispatchRoute;
    }

    public CarInfo getCarInfo() {
        return carInfo;
    }

    public void setCarInfo(CarInfo carInfo) {
        this.carInfo = carInfo;
    }

    public List<OrderForm> getOrderFormList() {
        return orderFormList;
    }

    public void setOrderFormList(List<OrderForm> orderFormList) {
        this.orderFormList = orderFormList;
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getTicketId() {
        return ticketId;
    }

    public void setTicketId(String ticketId) {
        this.ticketId = ticketId == null ? null : ticketId.trim();
    }

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status == null ? null : status.trim();
    }

    public Date getStatusTime() {
        return statusTime;
    }

    public void setStatusTime(Date statusTime) {
        this.statusTime = statusTime;
    }

    public Date getStartTime() {
        return startTime;
    }

    public void setStartTime(Date startTime) {
        this.startTime = startTime;
    }

    public Date getEndTime() {
        return endTime;
    }

    public void setEndTime(Date endTime) {
        this.endTime = endTime;
    }

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type == null ? null : type.trim();
    }

    public Integer getStartAreaId() {
        return startAreaId;
    }

    public void setStartAreaId(Integer startAreaId) {
        this.startAreaId = startAreaId;
    }

    public Integer getEndAreaId() {
        return endAreaId;
    }

    public void setEndAreaId(Integer endAreaId) {
        this.endAreaId = endAreaId;
    }

    public String getCreateId() {
        return createId;
    }

    public void setCreateId(String createId) {
        this.createId = createId == null ? null : createId.trim();
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public Date getModifyTime() {
        return modifyTime;
    }

    public void setModifyTime(Date modifyTime) {
        this.modifyTime = modifyTime;
    }

    public String getModifyId() {
        return modifyId;
    }

    public void setModifyId(String modifyId) {
        this.modifyId = modifyId == null ? null : modifyId.trim();
    }

    public Integer getDel() {
        return del;
    }

    public void setDel(Integer del) {
        this.del = del;
    }

    public Date getActualStartTime() {
        return actualStartTime;
    }

    public void setActualStartTime(Date actualStartTime) {
        this.actualStartTime = actualStartTime;
    }

    public Date getActualEndTime() {
        return actualEndTime;
    }

    public void setActualEndTime(Date actualEndTime) {
        this.actualEndTime = actualEndTime;
    }

    public String getStartAreaName() {
        return startAreaName;
    }

    public void setStartAreaName(String startAreaName) {
        this.startAreaName = startAreaName;
    }

    public String getEndAreaName() {
        return endAreaName;
    }

    public void setEndAreaName(String endAreaName) {
        this.endAreaName = endAreaName;
    }

    public String getCarNumber() {
        return carNumber;
    }

    public void setCarNumber(String carNumber) {
        this.carNumber = carNumber == null ? null : carNumber.trim();
    }

    public BaseCity getCurrentNodeCity() {
        return currentNodeCity;
    }

    public void setCurrentNodeCity(BaseCity currentNodeCity) {
        this.currentNodeCity = currentNodeCity;
    }

    public Date getCurrentNodeTime() {
        return currentNodeTime;
    }

    public void setCurrentNodeTime(Date currentNodeTime) {
        this.currentNodeTime = currentNodeTime;
    }

    public List<OrderForm> getFinishedOrderFormList() {
        return finishedOrderFormList;
    }

    public void setFinishedOrderFormList(List<OrderForm> finishedOrderFormList) {
        this.finishedOrderFormList = finishedOrderFormList;
    }

    public List<DispatchAbnormalRecord> getDispatchAbnormalRecordList() {
        return dispatchAbnormalRecordList;
    }

    public void setDispatchAbnormalRecordList(List<DispatchAbnormalRecord> dispatchAbnormalRecordList) {
        this.dispatchAbnormalRecordList = dispatchAbnormalRecordList;
    }

    public List<DispatchRoute> getDispatchRouteList() {
        return dispatchRouteList;
    }

    public void setDispatchRouteList(List<DispatchRoute> dispatchRouteList) {
        this.dispatchRouteList = dispatchRouteList;
    }

    public List<OrderStatus> getOrderStatusList() {
        return orderStatusList;
    }

    public void setOrderStatusList(List<OrderStatus> orderStatusList) {
        this.orderStatusList = orderStatusList;
    }
}